#include <iostream>
#include <string>
using namespace std;
#include <assert.h>
namespace  bit
{
	class string
	{
	public:
		string(const char* str)
		{
			if (str == nullptr)
			{
				assert(false);
				return;
			}
			_str = new char[strlen(str) + 1];
			strcpy(_str, str);
		}
		string(const string& s)
			/*
			{
			string tmp(s);
			swap(_str,tmp_str);
			}
			*/
		{
			_str = new char[strlen(s._str) + 1];
			strcpy(_str, s._str);
		}
		string& operator=(const string& s)
		{
			if (this != &s)
			{
				delete[] _str;
				_str = new char[strlen(s._str) + 1];
				strcpy(_str, s._str);
			}
			return *this;
		}
		~string()
		{
			delete[] _str;
			_str = nullptr;
		}
	private:
		char* _str;
	};
}
int main()
{
	bit::string s1("abcd");
	return 0;
}